# -*- coding: utf-8 -*-

'''
projecto- classe destinada ao desenho de um gráfico
autor- Ana Isabel Marques 6052
data de criação do módulo- 07/05/2013
'''

import matplotlib.pyplot as plt
import gc
from estatisticasAlgoritmoNelementos import *

class Grafico:

	'''
	Construtor
	@param LISTA_INFORMACAO_GRAFICO - lista que contém os valores correspondentes ao desenho do gráfico
	'''
	def __init__(self, LISTA_INFORMACAO_GRAFICO):
		self.LISTA_INFORMACAO_GRAFICO = LISTA_INFORMACAO_GRAFICO
		pass

	'''
	Desenha um gráfico com base numa lista que contém os valores que permitem
	gerar o gráfico.
	A lista contém:
		x - os valores correspondentes ao eixo do XX
		y - os valores correspondentes ao eixo do YY
		l - o estilo da linha
		c - a cor da linha
		m - tipo de marca da linha
		l - label correspondente à linha
	'''
	def desenhaGrafico(self):
	
		plt.grid(True)
		plt.ylabel(u'T(n) - tempo de execução médio em segundos')
		plt.xlabel(u'n - número de elementos')
		
		for x, y, l, c, m, lbl in self.LISTA_INFORMACAO_GRAFICO:
			plt.plot(x,y,linestyle=l, color=c, marker=m, label=lbl)
			pass
		
			
		plt.legend(loc=(0.05, 0.75))
		plt.show()
		
		plt.clf()
		plt.close()
		gc.collect()
		pass

	pass

